package cn.agiledata.bank.linkbank.logic.payment;

import java.math.BigDecimal;
import java.util.Date;

import cn.agiledata.bank.hibernateBean.Account;
import cn.agiledata.bank.hibernateBean.ActionType;
import cn.agiledata.bank.hibernateBean.Bank;
import cn.agiledata.bank.hibernateBean.SubAccount;

/**
 * 支付系统请求
 * 
 * @author maxianbo
 * 
 */
public class UnsPayRequest {
    /**
     * 商户（收款方）主账户
     */
    private Account creditAccount;

    /**
     * 商户收款子账户
     */
    private SubAccount creditSubAccount;
    /**
     * 商户收款子账户
     */
    private SubAccount debitSubAccount;

    /**
     * 订单号
     */
    private String orderId;

    /**
     * 响应方式
     */
    private int responseMode;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 商户接收响应信息的url
     */
    private String merchantUrl;

    /**
     * 备注
     */
    private String remark;

    /**
     * 货币种类
     */
    private String currencyType;

    /**
     * 是否担保交易
     */
    private boolean assuredPay;

    /**
     * 订单时间
     */
    private Date time;

    /**
     * 商户提交的mac值
     */
    private String merchantMac;

    /**
     * 商户参数
     */
    private String merchantParam;

    /**
     * 操作类型
     */
    private ActionType actionType;

    /**
     * 选择的支付银行
     */
    private Bank bank;

    /**
     * 是否需要银行反馈确认的交易
     */
    private boolean affirmable;

    /**
     * 付款方姓名
     */
    private String debitName;

    /**
     * 付款方email
     */
    private String debitEmail;

    /**
     * 付款方手机号码
     */
    private String debitMobile;

    private String commodity;

    private String orderUrl;

    public ActionType getActionType() {
        return this.actionType;
    }

    public BigDecimal getAmount() {
        return this.amount;
    }

    public Bank getBank() {
        return this.bank;
    }

    public Account getCreditAccount() {
        return this.creditAccount;
    }

    public String getCurrencyType() {
        return this.currencyType;
    }

    public String getMerchantMac() {
        return this.merchantMac;
    }

    public String getMerchantUrl() {
        return this.merchantUrl;
    }

    public String getOrderId() {
        return this.orderId;
    }

    public String getRemark() {
        return this.remark;
    }

    public int getResponseMode() {
        return this.responseMode;
    }

    public Date getTime() {
        return this.time;
    }

    public boolean isAffirmable() {
        return this.affirmable;
    }

    public boolean isAssuredPay() {
        return this.assuredPay;
    }

    public void setActionType(ActionType actionType) {
        this.actionType = actionType;
    }

    public void setAffirmable(boolean affirmable) {
        this.affirmable = affirmable;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public void setAssuredPay(boolean assuredPay) {
        this.assuredPay = assuredPay;
    }

    public void setBank(Bank bank) {
        this.bank = bank;
    }

    public void setCreditAccount(Account creditAccount) {
        this.creditAccount = creditAccount;
    }

    public void setCurrencyType(String currencyType) {
        this.currencyType = currencyType;
    }

    public void setMerchantMac(String merchantMac) {
        this.merchantMac = merchantMac;
    }

    public void setMerchantUrl(String merchantUrl) {
        this.merchantUrl = merchantUrl;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public void setResponseMode(int responseMode) {
        this.responseMode = responseMode;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getDebitEmail() {
        return this.debitEmail;
    }

    public void setDebitEmail(String debitEmail) {
        this.debitEmail = debitEmail;
    }

    public String getDebitMobile() {
        return this.debitMobile;
    }

    public void setDebitMobile(String debitMobile) {
        this.debitMobile = debitMobile;
    }

    public String getDebitName() {
        return this.debitName;
    }

    public void setDebitName(String debitName) {
        this.debitName = debitName;
    }

    public SubAccount getCreditSubAccount() {
        return this.creditSubAccount;
    }

    public void setCreditSubAccount(SubAccount creditSubAccount) {
        this.creditSubAccount = creditSubAccount;
    }

    public String getMerchantParam() {
        return this.merchantParam;
    }

    public void setMerchantParam(String merchantParam) {
        this.merchantParam = merchantParam;
    }

    public String getCommodity() {
        return this.commodity;
    }

    public void setCommodity(String commodity) {
        this.commodity = commodity;
    }

    public String getOrderUrl() {
        return this.orderUrl;
    }

    public void setOrderUrl(String orderUrl) {
        this.orderUrl = orderUrl;
    }

	public SubAccount getDebitSubAccount() {
		return debitSubAccount;
	}

	public void setDebitSubAccount(SubAccount debitSubAccount) {
		this.debitSubAccount = debitSubAccount;
	}

}
